package com.itlaobing.core;

import java.sql.*;

//理解execute方法返回值的含义/获取由数据库产生的键

public class Execute {
    public static void main(String[] args) throws SQLException, ClassNotFoundException {

        String driverClassName = "com.mysql.cj.jdbc.Driver" ;
        String url = "jdbc:mysql://localhost:3306/itlaobing?serverTimezone=Asia/Shanghai" ;
        String user = "root" ;
        String password = "" ;

        //加载驱动
        Class.forName(driverClassName);

        // 建类连接
        Connection connection = DriverManager.getConnection(url,user,password);

        // 创建 statement 实例
        Statement statement = connection.createStatement();

        String sql = "DROP TABLE IF EXISTS t_students " ; // IF EXISTS 是否存在， 适用于MySQL
        // 在 MySQL 数据库中 auto_increment 适用于 主键的自动增长 ( Oracle 并不支持 auto_increment 而是要通过序列(sequence)来实现 )
        // String sql = "CREATE TABLE t_students ( id INT(5) auto_increment , name VARCHAR(20) , gender VARCHAR(6) , PRIMARY KEY(id) )" ;
        //String sql = "INSERT INTO t_students ( name , gender ) VALUES ( '王盼盼' , '女' )" ;
        // 发送 SQL
        boolean executeResult = statement.execute(sql);

        // 处理结果
        if( executeResult ) { // executeResult 为 true 表明返回的第⼀个结果是 ResultSet
            // ⽤ 当前 Statement实例 的 getResultSet() 即可获取该结果集
            ResultSet resultSet =  statement.getResultSet(); // SQLException
            System.out.println( resultSet );
        } else { // // executeResult 为 false 则表明返回的是更新计数或者不存在任何结果
            int count = statement.getUpdateCount(); // SQLException
            System.out.println( count );
        }

        //释放资源
        statement.close();
        connection.close();
    }
}
